package com.xia.service.impl;

import com.xia.domain.User;
import com.xia.mapper.UserMapper;
import com.xia.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 用户服务层的实现类
 */

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    /**
     * 注册新用户
     * 使用Spring框架的事务管理注解
     * 该注解表明当前方法将在一个数据库事务中执行
     * 如果方法执行中没有出现异常，事务将被提交
     * 如果出现异常，事务将被回滚
     * 这对于需要保证数据库一致性的操作非常重要
     */
    @Transactional
    @Override
    public int register(User user) {
        return userMapper.register(user);
    }

    /**
     * 用户登录
     */
    @Override
    @Transactional
    public User login(String username, String password) {
        return userMapper.login(username, password);
    }

    /**
     * 获取用户信息
     */
    @Override
    @Transactional
    public User getUserInfo(Long userId) {
        return userMapper.getUserInfo(userId);
    }

    /**
     * 获取用户列表
     */
    @Override
    @Transactional
    public List<User> getUserList() {
        return userMapper.getUserList();
    }

    /**
     * 更新用户信息
     */
    @Override
    @Transactional
    public int updateUserInfo(User user) {
        return userMapper.updateUserInfo(user);
    }

    /**
     * 重置用户密码
     */
    @Override
    @Transactional
    public int resetPassword(String username) {
        return userMapper.resetPassword(username);
    }
}
